{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using TensorFlow backend.\n",
      "/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/dtypes.py:523: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n",
      "  _np_qint8 = np.dtype([(\"qint8\", np.int8, 1)])\n",
      "/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/dtypes.py:524: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n",
      "  _np_quint8 = np.dtype([(\"quint8\", np.uint8, 1)])\n",
      "/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/dtypes.py:525: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n",
      "  _np_qint16 = np.dtype([(\"qint16\", np.int16, 1)])\n",
      "/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/dtypes.py:526: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n",
      "  _np_quint16 = np.dtype([(\"quint16\", np.uint16, 1)])\n",
      "/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/dtypes.py:527: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n",
      "  _np_qint32 = np.dtype([(\"qint32\", np.int32, 1)])\n",
      "/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/dtypes.py:532: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n",
      "  np_resource = np.dtype([(\"resource\", np.ubyte, 1)])\n",
      "/usr/local/lib/python3.5/dist-packages/sklearn/ensemble/weight_boosting.py:29: DeprecationWarning: numpy.core.umath_tests is an internal NumPy module and should not be imported. It will be removed in a future NumPy release.\n",
      "  from numpy.core.umath_tests import inner1d\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import string\n",
    "from collections import Counter\n",
    "from keras.preprocessing.text import Tokenizer\n",
    "from keras.preprocessing.sequence import pad_sequences\n",
    "import sklearn\n",
    "import numpy as np\n",
    "from glob import glob\n",
    "from sklearn import datasets\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.feature_extraction.text import CountVectorizer\n",
    "from sklearn.feature_extraction.text import TfidfTransformer\n",
    "from sklearn.linear_model import SGDClassifier\n",
    "from sklearn.ensemble import RandomForestClassifier\n",
    "from sklearn import metrics\n",
    "from sklearn.pipeline import Pipeline \n",
    "\n",
    "from os import listdir\n",
    "from nltk.corpus import stopwords\n",
    "from pickle import dump\n",
    "from string import punctuation\n",
    "\n",
    "from numpy import array\n",
    "from keras.preprocessing.text import Tokenizer\n",
    "from keras.preprocessing.sequence import pad_sequences\n",
    "from keras.utils.vis_utils import plot_model\n",
    "from keras.models import Model\n",
    "from keras.layers import Input\n",
    "from keras.layers import Dense\n",
    "from keras.layers import Flatten\n",
    "from keras.layers import Dropout\n",
    "from keras.layers import Embedding\n",
    "from keras.layers.convolutional import Conv1D\n",
    "from keras.layers import LSTM\n",
    "from keras.layers.convolutional import MaxPooling1D\n",
    "from keras.layers.merge import concatenate\n",
    "from pickle import load\n",
    "\n",
    "import gensim\n",
    "from gensim.models import Word2Vec\n",
    "from gensim.utils import simple_preprocess\n",
    "\n",
    "import csv, string"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_train = pd.read_csv('/home/rkarim/BiB_2019_Clustering_Paper/Keras_Deep_Clustering/drugsCom_raw/drugsComTrain_raw.tsv', sep='\\t')\n",
    "df_test = pd.read_csv('/home/rkarim/BiB_2019_Clustering_Paper/Keras_Deep_Clustering/drugsCom_raw/drugsComTest_raw.tsv', sep='\\t')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Unnamed: 0</th>\n",
       "      <th>drugName</th>\n",
       "      <th>condition</th>\n",
       "      <th>review</th>\n",
       "      <th>rating</th>\n",
       "      <th>date</th>\n",
       "      <th>usefulCount</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>206461</td>\n",
       "      <td>Valsartan</td>\n",
       "      <td>Left Ventricular Dysfunction</td>\n",
       "      <td>\"It has no side effect, I take it in combinati...</td>\n",
       "      <td>9.0</td>\n",
       "      <td>May 20, 2012</td>\n",
       "      <td>27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>95260</td>\n",
       "      <td>Guanfacine</td>\n",
       "      <td>ADHD</td>\n",
       "      <td>\"My son is halfway through his fourth week of ...</td>\n",
       "      <td>8.0</td>\n",
       "      <td>April 27, 2010</td>\n",
       "      <td>192</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>92703</td>\n",
       "      <td>Lybrel</td>\n",
       "      <td>Birth Control</td>\n",
       "      <td>\"I used to take another oral contraceptive, wh...</td>\n",
       "      <td>5.0</td>\n",
       "      <td>December 14, 2009</td>\n",
       "      <td>17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>138000</td>\n",
       "      <td>Ortho Evra</td>\n",
       "      <td>Birth Control</td>\n",
       "      <td>\"This is my first time using any form of birth...</td>\n",
       "      <td>8.0</td>\n",
       "      <td>November 3, 2015</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>35696</td>\n",
       "      <td>Buprenorphine / naloxone</td>\n",
       "      <td>Opiate Dependence</td>\n",
       "      <td>\"Suboxone has completely turned my life around...</td>\n",
       "      <td>9.0</td>\n",
       "      <td>November 27, 2016</td>\n",
       "      <td>37</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Unnamed: 0                  drugName                     condition  \\\n",
       "0      206461                 Valsartan  Left Ventricular Dysfunction   \n",
       "1       95260                Guanfacine                          ADHD   \n",
       "2       92703                    Lybrel                 Birth Control   \n",
       "3      138000                Ortho Evra                 Birth Control   \n",
       "4       35696  Buprenorphine / naloxone             Opiate Dependence   \n",
       "\n",
       "                                              review  rating  \\\n",
       "0  \"It has no side effect, I take it in combinati...     9.0   \n",
       "1  \"My son is halfway through his fourth week of ...     8.0   \n",
       "2  \"I used to take another oral contraceptive, wh...     5.0   \n",
       "3  \"This is my first time using any form of birth...     8.0   \n",
       "4  \"Suboxone has completely turned my life around...     9.0   \n",
       "\n",
       "                date  usefulCount  \n",
       "0       May 20, 2012           27  \n",
       "1     April 27, 2010          192  \n",
       "2  December 14, 2009           17  \n",
       "3   November 3, 2015           10  \n",
       "4  November 27, 2016           37  "
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_train.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_full = pd.concat([df_train, df_test], ignore_index=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Unnamed: 0     215063\n",
       "drugName       215063\n",
       "condition      213869\n",
       "review         215063\n",
       "rating         215063\n",
       "date           215063\n",
       "usefulCount    215063\n",
       "dtype: int64"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_full.count()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_full_new = df_full[['review','rating']]\n",
    "#df_full_new['rating'].unique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/rkarim/.local/lib/python3.5/site-packages/pandas/core/indexing.py:480: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame.\n",
      "Try using .loc[row_indexer,col_indexer] = value instead\n",
      "\n",
      "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  self.obj[item] = s\n"
     ]
    }
   ],
   "source": [
    "df_full_new.loc[df_full_new.rating <= 4, 'rating'] = 0\n",
    "df_full_new.loc[df_full_new.rating > 7, 'rating'] = 2\n",
    "df_full_new.loc[df_full_new.rating >= 5, 'rating'] = 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "from sklearn.feature_extraction.text import CountVectorizer\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.metrics import classification_report\n",
    "from joblib import dump, load\n",
    "from sklearn.model_selection import train_test_split\n",
    "import numpy as np\n",
    "\n",
    "reviews = df_full_new['review'].values\n",
    "y = df_full_new['rating'].values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(150544, 53558)\n",
      "Done transforming\n"
     ]
    }
   ],
   "source": [
    "vectorizer = CountVectorizer()\n",
    "vectorizer.fit(reviews)\n",
    "X = vectorizer.transform(reviews)\n",
    "\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)\n",
    "\n",
    "print(np.shape(X_train))\n",
    "print('Done transforming')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\users\\admin-karim\\appdata\\local\\programs\\python\\python35\\lib\\site-packages\\sklearn\\linear_model\\logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "c:\\users\\admin-karim\\appdata\\local\\programs\\python\\python35\\lib\\site-packages\\sklearn\\linear_model\\logistic.py:469: FutureWarning: Default multi_class will be changed to 'auto' in 0.22. Specify the multi_class option to silence this warning.\n",
      "  \"this warning.\", FutureWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Done fitting\n",
      "Done dumping\n",
      "Done loading\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\users\\admin-karim\\appdata\\local\\programs\\python\\python35\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n",
      "  \"the number of iterations.\", ConvergenceWarning)\n"
     ]
    }
   ],
   "source": [
    "classifier = LogisticRegression(max_iter=10)\n",
    "classifier.fit(X_train, y_train)\n",
    "print('Done fitting')\n",
    "\n",
    "dump(classifier, 'classifier')\n",
    "print('Done dumping')\n",
    "\n",
    "classifier = load('classifier')\n",
    "y_pred = classifier.predict(X_test)\n",
    "print('Done loading')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Classification report:\n",
      "               precision    recall  f1-score   support\n",
      "\n",
      "         0.0       0.71      0.70      0.71     16272\n",
      "         1.0       0.15      0.49      0.22      2918\n",
      "         2.0       0.92      0.79      0.85     45329\n",
      "\n",
      "    accuracy                           0.75     64519\n",
      "   macro avg       0.59      0.66      0.59     64519\n",
      "weighted avg       0.83      0.75      0.79     64519\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print('\\nClassification report:\\n', classification_report(y_pred, y_test))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "import gensim\n",
    "en_model = gensim.models.KeyedVectors.load_word2vec_format('GoogleNews-vectors-negative300.bin.gz', binary=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "def load_embeddings(model, words):\n",
    "    #en_model = Word2Vec.load_word2vec_format('C:/Users/admin-karim/Downloads/GoogleNews-vectors-negative300.bin.gz', binary=True, norm_only=True)\n",
    "    #en_model = ft.load_fasttext_format('C:/Users/admin-karim/Downloads/GoogleNews-vectors-negative300.bin.gz')\n",
    "    embedding = np.array([])\n",
    "    for word in words:\n",
    "        embedding = np.append(embedding, model[word[0]])\n",
    "    return embedding"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "def tokenize(text, n_grams):\n",
    "    \"\"\"\n",
    "    remove punctuation and non-alpha characters, return all tokens after lower case-ing and splitting by space\n",
    "    :param n_grams: length of n-gram\n",
    "    :param text:\n",
    "    :return:\n",
    "    \"\"\"\n",
    "    tokens = text.split()\n",
    "    table = str.maketrans('', '', string.punctuation)\n",
    "    tokens = [w.translate(table) for w in tokens]\n",
    "    tokens = [token for token in tokens if token.isalpha()]\n",
    "    tokens = [word.lower() for word in tokens]\n",
    "    tokens = [token for token in tokens if token not in stopwords]\n",
    "    return [' '.join(x) for x in ngrams(tokens, n_grams)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "def ngrams(tokens, n):\n",
    "    output = []\n",
    "    for i in range(len(tokens) - n + 1):\n",
    "        output.append(tokens[i:i + n])\n",
    "    return output"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "def top_words(lines, num_words, n_grams):\n",
    "    all_tokens = []\n",
    "    for line in lines:\n",
    "        tokens = tokenize(line, n_grams)\n",
    "        for t in tokens:\n",
    "            if t not in stopwords:\n",
    "                all_tokens.append(t)\n",
    "    counter = Counter(all_tokens)\n",
    "    return counter.most_common(num_words)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "from nltk.corpus import stopwords\n",
    "stop_words = set(stopwords.words('english'))\n",
    "\n",
    "def filter_stop_words(train_sentences, stop_words):\n",
    "    for i, sentence in enumerate(train_sentences):\n",
    "        new_sent = [word for word in sentence.split() if word not in stop_words]\n",
    "        train_sentences[i] = ' '.join(new_sent)\n",
    "    return train_sentences\n",
    "\n",
    "train_sentences = filter_stop_words(reviews, stop_words)\n",
    "\n",
    "tokenizer = Tokenizer(num_words=100000)\n",
    "tokenizer.fit_on_texts(reviews)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "def encode_text(tokenizer, reviews, length):\n",
    "    #print(lines)\n",
    "    encoded=tokenizer.texts_to_sequences(reviews)\n",
    "    print(encoded[0:10])\n",
    "    padded = pad_sequences(encoded, maxlen=length, padding='post')\n",
    "    return padded"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Max document length: 300\n",
      "Vocabulary size: 53636\n",
      "\n",
      "[[3, 7, 137, 1, 16, 790, 2936, 49, 91, 3843, 1552], [15, 589, 3394, 1628, 33, 3326, 460, 345, 1190, 312, 89, 33, 19, 8, 2347, 90, 223, 232, 59, 23, 95, 899, 22, 266, 3523, 732, 591, 159, 87, 218, 448, 455, 2758, 369, 2075, 1824, 1, 593, 35, 1392, 144, 200, 730, 23, 150, 455, 99, 144, 17, 89, 59, 23, 233, 325, 315, 51, 14269, 111, 315, 188, 479, 253, 65, 151, 188, 3523, 315, 2164, 208, 1913, 334, 1947, 54, 460, 75, 155, 181, 356, 108, 242], [1, 94, 16, 206, 1167, 1816, 860, 30, 482, 193, 235, 113, 1875, 49, 23, 7, 13, 97, 6363, 1262, 28300, 1150, 938, 1, 280, 9092, 3124, 1076, 236, 139, 507, 1, 19, 9092, 359, 14, 5, 37, 2001, 200, 179, 37, 402, 59, 32, 236, 8, 201, 416, 59, 32, 179, 57, 515, 416, 208, 40, 68, 140, 515, 37, 402, 59, 32, 3, 2, 10, 367, 515, 33, 1, 47, 192, 1441, 887, 17, 410, 7, 1, 66, 2, 4, 7, 13, 17, 936, 37, 325, 10618, 7653], [28, 14, 24, 122, 687, 81, 63, 1, 2, 6, 542, 1, 55, 389, 1, 159, 18, 285, 14, 3, 664, 765, 924, 17, 1161, 83, 113, 249, 49, 76, 23, 1901, 1, 94, 113, 25, 53, 23, 1875, 36, 83, 119, 645, 14, 59, 23, 37, 1, 52, 119, 122, 81, 63, 630, 193, 389], [846, 205, 751, 43, 157, 1, 26, 2240, 1, 2, 6, 20524, 399, 1, 152, 877, 2084, 3882, 5627, 1, 678, 846, 1090, 11, 4753, 1396, 15, 16110, 320, 1090, 24, 1, 40, 1, 19, 10842, 25533, 9093, 16793, 1331, 105, 1350, 199, 172, 2, 477, 841, 143, 272, 2, 10, 65, 1085, 846, 100, 4671, 69, 43, 134, 1, 186, 7, 13, 747, 942, 1396, 1, 2, 6, 251, 393, 54, 424, 438, 42, 3, 753, 318, 17, 606, 22037, 3428, 1, 1090, 1396], [581, 5, 474, 19, 58, 2500, 306, 2232, 141, 16794, 286, 379, 675, 16795, 604, 5, 2232, 27, 411, 107, 427, 651, 1917, 769, 98, 379, 675, 16795, 21, 204, 71, 20, 132, 2, 4, 2820, 1006, 28301, 2232, 7, 13, 4912, 18, 1671, 1, 2, 6, 418, 107, 58, 8507, 33, 146, 222, 7, 13], [315, 1817, 215, 16796, 226, 42, 1, 34, 387, 487, 1280, 87, 176, 34, 396, 647, 59, 32, 176, 1, 2, 6, 259], [974, 273, 43, 272, 258, 1, 398, 2280, 1, 14, 19, 974, 551, 248, 398, 84, 12596, 1473, 876, 2062, 15, 987, 63, 1, 293, 2448, 31, 201, 982, 3327, 287, 2062, 154, 15, 243, 92, 1428, 974, 327, 1, 26, 21, 1, 1507, 187, 1, 126, 1, 2, 6, 146, 2211, 2416, 377, 383, 3060, 1, 126, 974, 78, 1, 75, 22, 128, 876, 63, 1023, 55, 29, 1, 7717, 134, 1, 474, 1136, 192, 1, 860, 54, 1, 111, 246, 354, 7, 137, 1, 21, 180, 116], [1, 9, 110, 190, 17820, 383, 1434, 969, 107, 510, 107, 4082, 107, 2391, 103, 969, 107, 510, 98, 235, 4083, 245, 107, 361], [1, 30, 155, 11, 236, 35, 273, 1659, 3816, 242, 3, 50, 102, 205, 1356, 79, 461, 76, 18, 187, 1, 131, 907, 39, 2263, 479, 677, 263, 1, 118, 8, 463, 1, 19, 122, 1318, 1079, 81, 63, 19, 16, 463, 1, 658, 79, 262, 29, 551, 998, 1, 50, 258, 123, 21, 84, 39, 131, 1113, 988, 1, 1906, 57, 1, 2, 6, 36, 2340, 558, 229, 3383, 208, 1, 338, 897, 11995, 247, 36, 1, 258, 268, 2, 4, 1927, 1459, 1, 412, 1, 293, 638, 3, 2, 296, 21, 1, 2469]]\n",
      "(215063, 300)\n"
     ]
    }
   ],
   "source": [
    "trainLength=300\n",
    "vocab_size=len(tokenizer.word_index)+1\n",
    "print('Max document length: %d' % trainLength)\n",
    "print('Vocabulary size: %d' % vocab_size)\n",
    "print()\n",
    "X_train = encode_text(tokenizer, reviews, trainLength)\n",
    "print(X_train.shape)\n",
    "#trainX[2]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Automatically created module for IPython interactive environment\n",
      "Computing embedding\n"
     ]
    }
   ],
   "source": [
    "# Authors: Gael Varoquaux\n",
    "# License: BSD 3 clause (C) INRIA 2014\n",
    "\n",
    "print(__doc__)\n",
    "from time import time\n",
    "\n",
    "import numpy as np\n",
    "from scipy import ndimage\n",
    "from matplotlib import pyplot as plt\n",
    "\n",
    "%matplotlib inline\n",
    "\n",
    "from sklearn import manifold, datasets\n",
    "\n",
    "X = X_train\n",
    "\n",
    "\n",
    "#----------------------------------------------------------------------\n",
    "# Visualize the clustering\n",
    "def plot_clustering(X_red, labels, title=None):\n",
    "    x_min, x_max = np.min(X_red, axis=0), np.max(X_red, axis=0)\n",
    "    X_red = (X_red - x_min) / (x_max - x_min)\n",
    "\n",
    "    plt.figure(figsize=(6, 4))\n",
    "    for i in range(X_red.shape[0]):\n",
    "        plt.text(X_red[i, 0], X_red[i, 1], str(y[i]),\n",
    "                 color=plt.cm.nipy_spectral(labels[i] / 10.),\n",
    "                 fontdict={'weight': 'bold', 'size': 9})\n",
    "\n",
    "    plt.xticks([])\n",
    "    plt.yticks([])\n",
    "    if title is not None:\n",
    "        plt.title(title, size=17)\n",
    "    plt.axis('off')\n",
    "    plt.tight_layout(rect=[0, 0.03, 1, 0.95])\n",
    "\n",
    "#----------------------------------------------------------------------\n",
    "# 2D embedding of the digits dataset\n",
    "print(\"Computing embedding\")\n",
    "X_red = manifold.SpectralEmbedding(n_components=2).fit_transform(X)\n",
    "print(\"Done.\")\n",
    "\n",
    "from sklearn.cluster import AgglomerativeClustering\n",
    "\n",
    "for linkage in ('ward', 'average', 'complete', 'single'):\n",
    "    clustering = AgglomerativeClustering(linkage=linkage, n_clusters=10)\n",
    "    t0 = time()\n",
    "    clustering.fit(X_red)\n",
    "    print(\"%s :\\t%.2fs\" % (linkage, time() - t0))\n",
    "\n",
    "    plot_clustering(X_red, clustering.labels_, \"%s linkage\" % linkage)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "NUM_WORDS=200000\n",
    "EMBEDDING_DIM=300\n",
    "\n",
    "vocabulary_size=len(tokenizer.word_index)+1\n",
    "word_index=tokenizer.word_index\n",
    "embedding_matrix = np.zeros((vocabulary_size, EMBEDDING_DIM))\n",
    "\n",
    "for word, i in word_index.items():\n",
    "    if i>=NUM_WORDS:\n",
    "        continue\n",
    "    try:\n",
    "        embedding_vector=en_model[word]\n",
    "        embedding_matrix[i]=embedding_vector\n",
    "    except KeyError:\n",
    "        embedding_matrix[i]=np.random.normal(0,np.sqrt(0.25),EMBEDDING_DIM)\n",
    "\n",
    "del(en_model)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "embedding_layer = Embedding(vocabulary_size, EMBEDDING_DIM, weights=[embedding_matrix],trainable=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {},
   "outputs": [],
   "source": [
    "# define the model\n",
    "def define_model(length, vocab_size):\n",
    "\t# channel 1\n",
    "\tinput1 = Input(shape=(length,))\n",
    "\tembedding_layer_1 = embedding_layer(input1)\n",
    "\tconv1 = Conv1D(filters=32, kernel_size=4, activation='relu')(embedding_layer_1)\n",
    "\tdrop1 = Dropout(0.5)(conv1)\n",
    "\tpool1 = MaxPooling1D(pool_size=2)(drop1)\n",
    "\tflat1 = Flatten()(pool1)\n",
    "    \n",
    "\t# channel 2\n",
    "\tinput2 = Input(shape=(length,))\n",
    "\tembedding_layer_2 = embedding_layer(input2)\n",
    "\tconv2 = Conv1D(filters=32, kernel_size=6, activation='relu')(embedding_layer_2)\n",
    "\tdrop2 = Dropout(0.5)(conv2)\n",
    "\tpool2 = MaxPooling1D(pool_size=2)(drop2)\n",
    "\tflat2 = Flatten()(pool2)\n",
    "    \n",
    "\t# channel 3\n",
    "\tinput3 = Input(shape=(length,))\n",
    "\tembedding_layer_3 = embedding_layer(input3)\n",
    "\tconv3 = Conv1D(filters=32, kernel_size=8, activation='relu')(embedding_layer_3)\n",
    "\tdrop3 = Dropout(0.5)(conv3)\n",
    "\tpool3 = MaxPooling1D(pool_size=2)(drop3)\n",
    "\tflat3 = Flatten()(pool3)\n",
    "    \n",
    "\t# merge\n",
    "\tCNN_layer = concatenate([flat1, flat2, flat3])\n",
    "    \n",
    "\t# LSTM\n",
    "\tx = embedding_layer(input3)\n",
    "\tLSTM_layer = LSTM(128)(x)\n",
    "\n",
    "\tCNN_LSTM_layer = concatenate([LSTM_layer, CNN_layer])\n",
    "    \n",
    "\t# interpretation\n",
    "\tdense1 = Dense(10, activation='relu')(CNN_LSTM_layer)\n",
    "\toutputs = Dense(3, activation='softmax')(dense1)\n",
    "\tmodel = Model(inputs=[input1, input2, input3], outputs=outputs)\n",
    "    \n",
    "\t# compile\n",
    "\tmodel.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])\n",
    "    \n",
    "\t# summarize\n",
    "\t#print(model.summary())\n",
    "    \n",
    "\treturn model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "__________________________________________________________________________________________________\n",
      "Layer (type)                    Output Shape         Param #     Connected to                     \n",
      "==================================================================================================\n",
      "input_6 (InputLayer)            (None, 300)          0                                            \n",
      "__________________________________________________________________________________________________\n",
      "input_4 (InputLayer)            (None, 300)          0                                            \n",
      "__________________________________________________________________________________________________\n",
      "input_5 (InputLayer)            (None, 300)          0                                            \n",
      "__________________________________________________________________________________________________\n",
      "embedding_1 (Embedding)         (None, 300, 300)     16090800    input_4[0][0]                    \n",
      "                                                                 input_5[0][0]                    \n",
      "                                                                 input_6[0][0]                    \n",
      "                                                                 input_6[0][0]                    \n",
      "__________________________________________________________________________________________________\n",
      "conv1d_4 (Conv1D)               (None, 297, 32)      38432       embedding_1[4][0]                \n",
      "__________________________________________________________________________________________________\n",
      "conv1d_5 (Conv1D)               (None, 295, 32)      57632       embedding_1[5][0]                \n",
      "__________________________________________________________________________________________________\n",
      "conv1d_6 (Conv1D)               (None, 293, 32)      76832       embedding_1[6][0]                \n",
      "__________________________________________________________________________________________________\n",
      "dropout_4 (Dropout)             (None, 297, 32)      0           conv1d_4[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "dropout_5 (Dropout)             (None, 295, 32)      0           conv1d_5[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "dropout_6 (Dropout)             (None, 293, 32)      0           conv1d_6[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "max_pooling1d_4 (MaxPooling1D)  (None, 148, 32)      0           dropout_4[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "max_pooling1d_5 (MaxPooling1D)  (None, 147, 32)      0           dropout_5[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "max_pooling1d_6 (MaxPooling1D)  (None, 146, 32)      0           dropout_6[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "flatten_4 (Flatten)             (None, 4736)         0           max_pooling1d_4[0][0]            \n",
      "__________________________________________________________________________________________________\n",
      "flatten_5 (Flatten)             (None, 4704)         0           max_pooling1d_5[0][0]            \n",
      "__________________________________________________________________________________________________\n",
      "flatten_6 (Flatten)             (None, 4672)         0           max_pooling1d_6[0][0]            \n",
      "__________________________________________________________________________________________________\n",
      "lstm_2 (LSTM)                   (None, 128)          219648      embedding_1[7][0]                \n",
      "__________________________________________________________________________________________________\n",
      "concatenate_3 (Concatenate)     (None, 14112)        0           flatten_4[0][0]                  \n",
      "                                                                 flatten_5[0][0]                  \n",
      "                                                                 flatten_6[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "concatenate_4 (Concatenate)     (None, 14240)        0           lstm_2[0][0]                     \n",
      "                                                                 concatenate_3[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "dense_2 (Dense)                 (None, 10)           142410      concatenate_4[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "dense_3 (Dense)                 (None, 3)            33          dense_2[0][0]                    \n",
      "==================================================================================================\n",
      "Total params: 16,625,787\n",
      "Trainable params: 534,987\n",
      "Non-trainable params: 16,090,800\n",
      "__________________________________________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "model= define_model(EMBEDDING_DIM,vocabulary_size)\n",
    "model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "from keras.utils import to_categorical\n",
    "\n",
    "def toCategorical(y):\n",
    "    y = to_categorical(y)\n",
    "    return y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_train = toCategorical(y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 193556 samples, validate on 21507 samples\n",
      "Epoch 1/1\n",
      "193556/193556 [==============================] - 3824s 20ms/step - loss: 0.7614 - acc: 0.6850 - val_loss: 0.6952 - val_acc: 0.7203\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<keras.callbacks.History at 0x1da198b84a8>"
      ]
     },
     "execution_count": 103,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.fit([X_train,X_train,X_train], y_train, epochs=1, batch_size=128, validation_split=0.1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Number of cluster: 3\n",
      "Input shape: (215063, 300)\n",
      "Timestep: 215063\n",
      "Data dimension: 300\n"
     ]
    }
   ],
   "source": [
    "n_clusters = len(np.unique(y))\n",
    "print(\"Number of cluster: \" + str(n_clusters))\n",
    "print(\"Input shape: \" + str(X_train.shape))\n",
    "\n",
    "print(\"Timestep: \" + str(X_train.shape[0]))\n",
    "print(\"Data dimension: \" + str(X_train.shape[1]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [],
   "source": [
    "import keras\n",
    "from keras import backend as K\n",
    "from keras.models import Sequential, Model\n",
    "from keras.layers import Input, LSTM, RepeatVector\n",
    "from keras.layers.core import Flatten, Dense, Dropout, Lambda\n",
    "from keras.optimizers import SGD, RMSprop, Adam\n",
    "from keras import objectives\n",
    "from keras.models import Sequential\n",
    "from keras.layers import LSTM\n",
    "from keras.layers import Dense\n",
    "from keras.layers import RepeatVector\n",
    "from keras.layers import TimeDistributed\n",
    "\n",
    "def LSTM_AE(timesteps):\n",
    "    \"\"\"\n",
    "    Creates an LSTM Autoencoder (VAE). Returns Autoencoder, Encoder, Generator. \n",
    "    (All code by fchollet - see reference.)\n",
    "    # Arguments\n",
    "        input_dim: int.\n",
    "        timesteps: int, input timestep dimension.\n",
    "        latent_dim: int, latent z-layer shape. \n",
    "    # References\n",
    "        - [Building Autoencoders in Keras](https://blog.keras.io/building-autoencoders-in-keras.html)\n",
    "    \"\"\"\n",
    "\n",
    "    inputs = Input(shape=(EMBEDDING_DIM,))\n",
    "    x = embedding_layer(inputs)\n",
    "    \n",
    "    encoded = LSTM(256, activation='relu',return_sequences=True)(x)\n",
    "    encoded = LSTM(128, activation='relu',return_sequences=True)(x)\n",
    "    encoded = LSTM(64, activation='relu',return_sequences=False)(encoded)\n",
    "    bn = BatchNormalization()(encoded)\n",
    "    do = Dropout(0.5)(bn)\n",
    "    \n",
    "    decoded = RepeatVector(timesteps)(do)    \n",
    "    decoded = LSTM(64, activation='relu', return_sequences=True)(decoded)\n",
    "    decoded = LSTM(128, activation='relu', return_sequences=True)(decoded)\n",
    "    decoded = LSTM(256, activation='relu', return_sequences=True)(decoded)\n",
    "    bn = BatchNormalization()(decoded)\n",
    "    do = Dropout(0.5)(bn)\n",
    "    decoded = TimeDistributed(Dense(EMBEDDING_DIM))(bn)\n",
    "    \n",
    "    return Model(inputs=inputs, outputs=decoded, name='LSTM_AE'), Model(inputs=inputs, outputs=encoded, name='encoder')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "input_5 (InputLayer)         (None, 300)               0         \n",
      "_________________________________________________________________\n",
      "embedding_1 (Embedding)      (None, 300, 300)          16090800  \n",
      "_________________________________________________________________\n",
      "lstm_16 (LSTM)               (None, 300, 128)          219648    \n",
      "_________________________________________________________________\n",
      "lstm_17 (LSTM)               (None, 64)                49408     \n",
      "_________________________________________________________________\n",
      "batch_normalization_6 (Batch (None, 64)                256       \n",
      "_________________________________________________________________\n",
      "dropout_6 (Dropout)          (None, 64)                0         \n",
      "_________________________________________________________________\n",
      "repeat_vector_5 (RepeatVecto (None, 1, 64)             0         \n",
      "_________________________________________________________________\n",
      "lstm_18 (LSTM)               (None, 1, 64)             33024     \n",
      "_________________________________________________________________\n",
      "lstm_19 (LSTM)               (None, 1, 128)            98816     \n",
      "_________________________________________________________________\n",
      "lstm_20 (LSTM)               (None, 1, 256)            394240    \n",
      "_________________________________________________________________\n",
      "batch_normalization_7 (Batch (None, 1, 256)            1024      \n",
      "_________________________________________________________________\n",
      "time_distributed_4 (TimeDist (None, 1, 300)            77100     \n",
      "=================================================================\n",
      "Total params: 16,964,316\n",
      "Trainable params: 872,876\n",
      "Non-trainable params: 16,091,440\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "autoencoder, encoder = LSTM_AE(1)\n",
    "autoencoder.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [],
   "source": [
    "from keras.layers import BatchNormalization\n",
    "\n",
    "embedding_layer_v2 = Embedding(len(word_index) + 1,\n",
    "                                EMBEDDING_DIM,\n",
    "                                weights=[embedding_matrix],\n",
    "                                input_length=300,\n",
    "                                trainable=False)\n",
    "\n",
    "inputs = Input(shape=(EMBEDDING_DIM, ))\n",
    "embedded_sequences = embedding_layer_v2(inputs)\n",
    "encoded = LSTM(128)(embedded_sequences)\n",
    "bn = BatchNormalization()(encoded)\n",
    "do = Dropout(0.5)(bn)\n",
    "\n",
    "decoded = RepeatVector(EMBEDDING_DIM)(bn)\n",
    "decoded = LSTM(EMBEDDING_DIM)(decoded)\n",
    "decoded = BatchNormalization()(decoded)\n",
    "decoded = Dropout(0.5)(decoded)\n",
    "\n",
    "#decoded = Dropout(0.5)(decoded)\n",
    "#decoded = Dense(300, activation='softmax')(decoded)\n",
    "\n",
    "sequence_autoencoder = Model(inputs, decoded)\n",
    "\n",
    "encoder = Model(inputs, encoded)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "input_6 (InputLayer)         (None, 300)               0         \n",
      "_________________________________________________________________\n",
      "embedding_3 (Embedding)      (None, 300, 300)          16090800  \n",
      "_________________________________________________________________\n",
      "lstm_21 (LSTM)               (None, 128)               219648    \n",
      "_________________________________________________________________\n",
      "batch_normalization_8 (Batch (None, 128)               512       \n",
      "_________________________________________________________________\n",
      "repeat_vector_6 (RepeatVecto (None, 300, 128)          0         \n",
      "_________________________________________________________________\n",
      "lstm_22 (LSTM)               (None, 300)               514800    \n",
      "_________________________________________________________________\n",
      "batch_normalization_9 (Batch (None, 300)               1200      \n",
      "_________________________________________________________________\n",
      "dropout_9 (Dropout)          (None, 300)               0         \n",
      "=================================================================\n",
      "Total params: 16,826,960\n",
      "Trainable params: 735,304\n",
      "Non-trainable params: 16,091,656\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "timesteps =  1 # equal to the lookback\n",
    "#autoencoder, encoder = LSTM_AE(timesteps)\n",
    "sequence_autoencoder.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [],
   "source": [
    "pretrain_epochs = 10\n",
    "batch_size = 1024\n",
    "save_dir = 'results/'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [],
   "source": [
    "sequence_autoencoder.compile(optimizer='adam', loss='sparse_categorical_crossentropy')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/10\n",
      "215063/215063 [==============================] - 1305s 6ms/step - loss: 6.1830\n",
      "Epoch 2/10\n",
      "215063/215063 [==============================] - 1305s 6ms/step - loss: 6.4003\n",
      "Epoch 3/10\n",
      "215063/215063 [==============================] - 1305s 6ms/step - loss: 5.9902\n",
      "Epoch 4/10\n",
      "215063/215063 [==============================] - 1305s 6ms/step - loss: 6.0908\n",
      "Epoch 5/10\n",
      "215063/215063 [==============================] - 1305s 6ms/step - loss: 6.2060\n",
      "Epoch 6/10\n",
      "215063/215063 [==============================] - 1306s 6ms/step - loss: 6.5142\n",
      "Epoch 7/10\n",
      "215063/215063 [==============================] - 1306s 6ms/step - loss: 5.8817\n",
      "Epoch 8/10\n",
      "215063/215063 [==============================] - 1306s 6ms/step - loss: 5.8888\n",
      "Epoch 9/10\n",
      "215063/215063 [==============================] - 1306s 6ms/step - loss: 5.7886\n",
      "Epoch 10/10\n",
      "215063/215063 [==============================] - 1306s 6ms/step - loss: 5.7553\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<keras.callbacks.History at 0x7f66c86ba2b0>"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sequence_autoencoder.fit(X_train, y, batch_size=batch_size, epochs=pretrain_epochs)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [],
   "source": [
    "from keras.engine.topology import Layer, InputSpec\n",
    "\n",
    "class ClusteringLayer(Layer):\n",
    "    \"\"\"\n",
    "    Clustering layer converts input sample (feature) to soft label, i.e. a vector that represents the probability of the\n",
    "    sample belonging to each cluster. The probability is calculated with student's t-distribution.\n",
    "\n",
    "    # Example\n",
    "    ```\n",
    "        model.add(ClusteringLayer(n_clusters=10))\n",
    "    ```\n",
    "    # Arguments\n",
    "        n_clusters: number of clusters.\n",
    "        weights: list of Numpy array with shape `(n_clusters, n_features)` witch represents the initial cluster centers.\n",
    "        alpha: degrees of freedom parameter in Student's t-distribution. Default to 1.0.\n",
    "    # Input shape\n",
    "        2D tensor with shape: `(n_samples, n_features)`.\n",
    "    # Output shape\n",
    "        2D tensor with shape: `(n_samples, n_clusters)`.\n",
    "    \"\"\"\n",
    "\n",
    "    def __init__(self, n_clusters, weights=None, alpha=1.0, **kwargs):\n",
    "        if 'input_shape' not in kwargs and 'input_dim' in kwargs:\n",
    "            kwargs['input_shape'] = (kwargs.pop('input_dim'),)\n",
    "        super(ClusteringLayer, self).__init__(**kwargs)\n",
    "        self.n_clusters = n_clusters\n",
    "        self.alpha = alpha\n",
    "        self.initial_weights = weights\n",
    "        self.input_spec = InputSpec(ndim=2)\n",
    "\n",
    "    def build(self, input_shape):\n",
    "        assert len(input_shape) == 2\n",
    "        input_dim = input_shape[1]\n",
    "        self.input_spec = InputSpec(dtype=K.floatx(), shape=(None, input_dim))\n",
    "        self.clusters = self.add_weight((self.n_clusters, input_dim), initializer='glorot_uniform', name='clusters')\n",
    "        if self.initial_weights is not None:\n",
    "            self.set_weights(self.initial_weights)\n",
    "            del self.initial_weights\n",
    "        self.built = True\n",
    "\n",
    "    def call(self, inputs, **kwargs):\n",
    "        \"\"\" student t-distribution, as same as used in t-SNE algorithm.\n",
    "         Measure the similarity between embedded point z_i and centroid µ_j.\n",
    "                 q_ij = 1/(1+dist(x_i, µ_j)^2), then normalize it.\n",
    "                 q_ij can be interpreted as the probability of assigning sample i to cluster j.\n",
    "                 (i.e., a soft assignment)\n",
    "        Arguments:\n",
    "            inputs: the variable containing data, shape=(n_samples, n_features)\n",
    "        Return:\n",
    "            q: student's t-distribution, or soft labels for each sample. shape=(n_samples, n_clusters)\n",
    "        \"\"\"\n",
    "        q = 1.0 / (1.0 + (K.sum(K.square(K.expand_dims(inputs, axis=1) - self.clusters), axis=2) / self.alpha))\n",
    "        q **= (self.alpha + 1.0) / 2.0\n",
    "        q = K.transpose(K.transpose(q) / K.sum(q, axis=1)) # Make sure each sample's 10 values add up to 1.\n",
    "        return q\n",
    "\n",
    "    def compute_output_shape(self, input_shape):\n",
    "        assert input_shape and len(input_shape) == 2\n",
    "        return input_shape[0], self.n_clusters\n",
    "\n",
    "    def get_config(self):\n",
    "        config = {'n_clusters': self.n_clusters}\n",
    "        base_config = super(ClusteringLayer, self).get_config()\n",
    "        return dict(list(base_config.items()) + list(config.items()))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [],
   "source": [
    "clustering_layer = ClusteringLayer(3, name='clustering')(encoder.output)\n",
    "model = Model(inputs=encoder.input, outputs=clustering_layer)\n",
    "model.compile(optimizer='adam', loss='kld')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [],
   "source": [
    "from time import time\n",
    "from keras.datasets import mnist\n",
    "import numpy as np\n",
    "np.random.seed(10)\n",
    "import numpy as np\n",
    "import keras.backend as K\n",
    "from keras.engine.topology import Layer, InputSpec\n",
    "from keras.layers import Dense, Input\n",
    "from keras.models import Model\n",
    "from keras.optimizers import SGD\n",
    "from keras import callbacks\n",
    "from keras.initializers import VarianceScaling\n",
    "from sklearn.cluster import KMeans\n",
    "from sklearn.metrics import accuracy_score\n",
    "from sklearn.metrics.cluster import mutual_info_score\n",
    "from sklearn.metrics.cluster import adjusted_rand_score\n",
    "from sklearn.cluster import DBSCAN\n",
    "from sklearn import mixture\n",
    "from sklearn import cluster"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [],
   "source": [
    "kmeans = KMeans(n_clusters=3, n_init=5)\n",
    "#bKmeans = DBSCAN()\n",
    "#optics = OPTICS()\n",
    "#gmm =  mixture.GaussianMixture()\n",
    "#aggCluster = cluster.AgglomerativeClustering()\n",
    "#spectral = cluster.SpectralClustering()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_pred_kmeans = kmeans.fit_predict(encoder.predict(X_train))\n",
    "#y_pred_bKmeans = bKmeans.fit_predict(encoder.predict(X_train))\n",
    "#y_pred_optics = optics.fit_predict(encoder.predict(X_train))\n",
    "#y_pred_gmm = gmm.fit_predict(encoder.predict(X_train))\n",
    "#y_pred_aggCluster = aggCluster.fit_predict(encoder.predict(X_train))\n",
    "#y_pred_spectral = spectral.fit_predict(encoder.predict(X_train))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.24903400398952866"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "metrics.accuracy_score(y, y_pred_kmeans)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_pred_last = np.copy(y_pred_kmeans)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.get_layer(name='clustering').set_weights([kmeans.cluster_centers_])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [],
   "source": [
    "#computing an auxiliary target distribution\n",
    "def target_distribution(q):\n",
    "    weight = q ** 2 / q.sum(0)\n",
    "    return (weight.T / weight.sum(1)).T"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [],
   "source": [
    "loss = 0\n",
    "index = 0\n",
    "maxiter = 100\n",
    "update_interval = 10\n",
    "index_array = np.arange(X_train.shape[0])\n",
    "tol = 0.01 # tolerance threshold to stop training"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Iter 0: acc = 0.24903, nmi = 0.00001, ari = 0.00002  ; loss= 0\n",
      "Iter 10: acc = 0.24903, nmi = 0.00001, ari = 0.00002  ; loss= 0.0\n",
      "delta_label  0.0 < tol  0.01\n",
      "Reached tolerance threshold. Stopping training.\n"
     ]
    }
   ],
   "source": [
    "for ite in range(int(maxiter)):\n",
    "    if ite % update_interval == 0:\n",
    "        q = model.predict(X_train, verbose=0)\n",
    "        p = target_distribution(q)  # update the auxiliary target distribution p\n",
    "\n",
    "        # evaluate the clustering performance\n",
    "        y_pred = q.argmax(1)\n",
    "        if y is not None:\n",
    "            acc = np.round(accuracy_score(y, y_pred), 5)\n",
    "            nmi = np.round(mutual_info_score(y, y_pred), 5)\n",
    "            ari = np.round(adjusted_rand_score(y, y_pred), 5)\n",
    "            loss = np.round(loss, 5)\n",
    "            print('Iter %d: acc = %.5f, nmi = %.5f, ari = %.5f' % (ite, acc, nmi, ari), ' ; loss=', loss)\n",
    "\n",
    "        # check stop criterion\n",
    "        delta_label = np.sum(y_pred != y_pred_last).astype(np.float32) / y_pred.shape[0]\n",
    "        y_pred_last = np.copy(y_pred)\n",
    "        if ite > 0 and delta_label < tol:\n",
    "            print('delta_label ', delta_label, '< tol ', tol)\n",
    "            print('Reached tolerance threshold. Stopping training.')\n",
    "            break\n",
    "    idx = index_array[index * batch_size: min((index+1) * batch_size, X_train.shape[0])]\n",
    "    loss = model.train_on_batch(x=X_train[idx], y=p[idx])\n",
    "    index = index + 1 if (index + 1) * batch_size <= X_train.shape[0] else 0\n",
    "\n",
    "model.save_weights(save_dir + '/conv_DEC_model_final.h5')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.load_weights(save_dir + '/conv_DEC_model_final.h5')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA48AAAKRCAYAAAD0wpxQAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3XlYVeX6//EPMgiITIKg2FHEMeeczbTSk2U5ppWZWlmm5ZBaeayfjZbW0fSYU5pHm9TUHCpNUzuaHuc0nEfEAVBBBURApv37g+P6bmTDBmRY6Pt1Xfu61lr7Wfd69pbMm/sZHCwWi0UAAAAAAOSiTEl3AAAAAABgfiSPAAAAAAC7SB4BAAAAAHaRPAIAAAAA7CJ5BAAAAADYRfIIAAAAALCL5BEArPzxxx8aMmSI2rZtq/r166t27dqqXbu2FixYUNJdy+Yf//iH0b/z58+XdHdQjJYvX2782S9fvrykuwMAuEs4lXQHAJQuFy9e1Lp167R9+3adOnVKV69eVVJSkjw8PBQYGKgGDRqoXbt2at++vVxcXEq6u/kyZ84cTZ48uaS7gTvA8uXLFRERIUkaNmxYCfcGAIDCQfIIIE+uXbumqVOnasmSJUpJScn2/tWrV3X16lUdOXJES5Yska+vr4YMGaI+ffrI2dm5BHqcP9HR0Zo2bZokyd3dXc8995xq1aolNzc3SVKtWrVKsnsoZVasWKFdu3ZJInkEANw5HCwWi6WkOwHA3M6cOaPBgwcrLCzMuNawYUO1adNGVapUkYeHh2JjY3X27Flt3bpVx48fN9p98803atmyZUl0O19WrVqlt956S5I0evRoDRo0qIR7hNKsX79+RvJ47NixEu4NAACFg8ojgFxdvXpVzz//vCIjIyVJtWvX1gcffKAmTZrYbD9mzBjt379fU6ZM0bZt24qzq7flwoULxnHdunVLsCcAAADmRPIIIFf/+Mc/jMSxSZMm+uqrr+Th4ZHrPQ0bNtT8+fO1YMECOTmVjr9mrIfilra5mgAAAMWBYasAcrRv3z4988wzkqRy5crp559/VlBQUKHFDw0N1bJly7Rr1y5dunRJFotFfn5+atq0qbp3767WrVvnen/t2rUlSS1atNC3336rxMRELVq0SKtXr9a5c+eUmpqqoKAgPfzww3rppZfk5eWVY4zc3IwvZSbTK1askCRt3LhRVapUyfG+vLS9ceOGli1bpg0bNujEiROKjY2Vs7OzfHx85OPjo9q1a+uBBx5Qhw4dsiW1+enLqVOntGjRIu3YsUNRUVFKTU1VhQoV1LBhQz3xxBP6+9//nut38PDDDysiIkJBQUH6/ffflZaWph9//FErV65UWFiYkpKSFBgYqLZt22rQoEEKDAzMNZ49y5cv19ixYyVJEyZMUM+ePXXgwAF999132r17t2JiYlShQgU1adJEgwcPzjInNT09XWvWrNHSpUsVFhamuLg4Va5cWX//+981ePDgXH/5kZycrC1btmjbtm06ePCgzp49q4SEBLm6uiowMFDNmjVTnz59VKdOHZv3Ww9Xzc3QoUOzzIW89Wc5Li5Oixcv1m+//abz588rNjZWPXr00MSJE3P8fm66cuWKunbtqujoaDk5OWnhwoVq1KiRzX6kpKTomWee0aFDhyRJn332mbp162a3/wCAu1PpKAkAKBFff/21cdyzZ89CSxzT0tL0wQcfaMmSJdneO3funM6dO6eVK1fqscce08SJE+Xq6mo35rlz5zR48GCdPHkyy/WTJ0/q5MmTWr16tb755ptcE6zidvbsWb300ks6c+ZMluupqalKTExURESEDh48aCRpBR1OO23aNM2ePVvp6elZrkdGRioyMlJr165VixYt9MUXX8jb29tuvCtXrui1117T3r17s1w/c+aMzpw5o19++UX//ve/Vb9+/QL115bvvvtOEyZMUFpaWrb+r1+/XjNnztQDDzyghIQEjRw5Un/88UeW+8PDwzV37lxt3LhR33//vXx9fW0+p3PnzsYqqdYSEhKMn6XFixfrlVde0ahRowrt81k7dOiQXnvtNUVFRRXofl9fX02cOFEvvfSS0tLS9MYbb2jFihU2k+YpU6YYiWOXLl1IHAEAuSJ5BGCTxWLR9u3bjfPC/EflW2+9pdWrV0uSypYtq+7du+u+++5TmTJldPDgQS1btkzXr1/Xr7/+qmvXrumrr76Sg4NDjvESEhI0aNAgnT59Wh06dNADDzwgLy8vnT9/XosWLVJkZKQiIiI0ZswYff/991nunTFjhiRp9erVWrNmjSRpxIgRWSpZeUmo8stisWjEiBFG4li3bl116tRJ99xzj5ycnBQfH69Tp05p586dOnLkSIGfM3nyZM2ZM0eS5OjoqM6d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Ffozbl2VNDY2VhUrVsxyLTg42KhKRkVF5Smudbvg4OBs75eWmMUl38ljenq6Zs6cqXnz5uVYZi1btqxefPFFvfbaa3J0dLztTgIAAAAwn7CwsCyLaOZnb8f8uHWRGFtDN0NCQozjw4cP242Zlpam48eP27y/tMUsLvlOHl9//XVt2LBBFotFTk5OqlmzpgICAiRJFy9e1IkTJ5ScnKxZs2bp2LFjxthkAAAAADkrjZXHVatWGceBgYFq1apVkTzHOslyd3e3uR1gy5YtjePTp08rJiYm130UDx06ZGx7UbZsWZv7UpaWmMUlX3Mely5dqvXr18tisWjAgAH6448/tGLFCs2ePVuzZ8/WihUrtGXLFr3wwguyWCz6/ffftXTp0qLqOwAAAIASYrFY9NNPPxnnXbt2zbbtRmFZsWKFcdy0aVObbYKDg1W9enWjb9bDae3FbN26tXtySLoAACAASURBVM3htqUlZnHJ15/ukiVL5ODgoCFDhmjs2LHy9fXN1sbHx0djxozRkCFDZLFYtGTJkkLrLAAAAHCnsliK71UYdu7cqcjISOM8P6usXr9+Pc9tv/vuO+3evds479q1a45tn332WeN43rx5unLlis12p06d0vLly23eV1pjFod8JY8nT55UmTJlNHDgQLttBw4cqDJlyujkyZMF7hwAAAAAc7IestqgQYN8zcVbt26dnnrqKf388885JpJXr17VhAkTNH78eONavXr19MQTT+QY9+mnn1ZQUJAk6cqVKxo0aJAuXryYpc2pU6c0ePBgY/2W5s2bq3379qU+ZnHI15xHZ2dnubi42BxjfCsPDw+VL19eltK6YQ0AAABQjErTnMekpCStW7fOOC/I3o6hoaEKDQ2Vs7OzatSooWrVqsnT01Opqak6d+6cQkNDs2zJUalSJc2cOTPXobEuLi764osv1LdvXyUlJenAgQPq2LGjWrduLX9/f0VERGjnzp3KyMiQJPn/f/buOzyqMu3j+G8gBUMKLUBAJJCACFLEhKIivQiCREAUVAQEy1JsgAVslNVdFREUF0RglaKAIKwoTckL0rt00iihBkhPmCQz7x8sswkpk4Rk5oR8P3vNdZ3ynOfcyarJnfspvr765z//mWecJaVPRyhQ8li3bl0dOHBA8fHxdrfiiI+PV0JCglMndAIAAAAoeuvWrbNVDF1dXdWjR49C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L1+u4CjyA998802D5/Py8mptSFVYWPggSxKxez9cJnH69GlOnz5tU9/i4mKFRxFp0RQepUXr06cPO3bsIDExkaSkJC5dukRBQQHt27ena9eu/OY3v2H48OF6SLOIiIiIyH3SbasiIiIiIiJilTbMEREREREREasUHkVERERERMQqhUcRERERERGxSuFRRERERERErFJ4FBEREREREasUHkVERERERMQqhUcRERERERGxSuFRRERERERErFJ4FBEREREREasUHkVERERERMQqhUcReSQZjUaCgoIICgpq7lLsUkREBEFBQaxataq5S2m06u+r0Whs0nEHDhxIUFAQiYmJTTquLVatWkVQUBAREREP/bNFRERs5djcBYiINKSiooLk5GT27dvHqVOnyM/Pp7S0FE9PT/z8/OjTpw/Dhg2jW7duzV1qg9LT09m9ezeenp6MHz++ucsRERERaTSFRxGxWydPnmTOnDlkZWWZ33NycsLDw4OCggKOHz/O8ePHWbt2LeHh4cTExODs7Nx8BTcgPT2d2NhYfH197SI8+vj44O/vT7t27Zq7FBEREWkhFB5FxC7t2bOHqKgoTCYTXl5eTJo0ifDwcPz8/IC7M5JpaWmkpKTwySefkJKSQmlpqd2GR3uzbNmy5i5BREREWhiFRxGxO1lZWcyaNQuTyUTXrl1JSEjgscces2hjMBgIDg4mODiYSZMm8Ze//KWZqhURERH5/0HhUUTsznvvvUdRUREuLi7ExsbWCo4/5OXlxfvvv09VVZVN469atYrY2Fj69evHhg0b6mxjNBoZN24cAGfPnq11/tSpU3z88cecOHGCa9euYTAYaNeuHb6+voSGhvLSSy+Z6665aU9OTk6tTXxef/11IiMjLd67fv06H330EV9++SXfffcdJpOJTp060b9/fyZMmMCPf/xjqzWnpaWRkJDAkSNHyM/PJyQkxHy9ERERHD58uM7PHjhwIDk5Obz77rs8//zzfPzxx2zfvp1Lly5hMBjo0aMHr776Ks8++2y9X+Pi4mLi4+PZtWsXOTk5eHh48NRTTzFx4kRCQ0MtPuO3v/1tveM01rlz50hOTubIkSNcvnyZq1ev4ujoSJcuXQgLC+OVV16hffv2VscpKipizZo1pKSkkJubi5ubG71792bKlCk8/fTTDfY9duwYn376KceOHSMvLw9nZ2f8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mZzNsaGQiIjI/VJ4FBG71bt3b3bt2kVSUhJ79+7l9OnT5Ofnc/v2bdq2bUtAQAB9+/ZlxIgRBAQENGrsAQMG8M9//pO4uDiOHz9OSUkJnTt3Jjw8nClTppCamlpnv4EDB7J06VKMRiNpaWlcu3aNmzdv4uHhgb+/P7/85S95+eWXLW5prLZy5UpWr17Nvn37yM3NJScnB6i9OU/v3r1JSkpi06ZN7Nmzh/Pnz1NYWIiLiwuBgYH06NGDZ599ll/96leNuuaHpWPHjmzZsoX4+Hh27dpFTk4OBoOBsLAwXn31Vfr168eyZcuAu7N8TaVNmzZs3LiR1atXs3v3bq5evYrBYKBfv36MHj2aoUOH2rSRUZs2bdiyZQtr1qwhJSWF3NxcvLy86NWrF1OmTKFXr1519mvVqhVRUVE899xzfPrppxiNRnJzcykqKqJNmzb4+fkREhLC4MGD6x1DRETEnrWqaur9ykVERBqQlZXFkCFDANi3bx8+Pj7NXJGIiIjYQmseRUTkoareMKdr164KjiIiIi2IwqOIiDSpCxcu8Oabb3LkyBGKioos3o+OjiYxMRGA1157rblKFBERkXug21ZFRKRJpaen88ILL5hfe3p6Ul5eTklJifm9iIgI3nrrreYoT0RERO6RwqOIiDSpoqIiNm3axMGDB8nMzOT69euUl5fToUMHevbsyejRowkNDW3uMkVERKSRFB5FRERERETEKq15FBEREREREasUHkVERERERMQqhUcRERERERGxSuFRRERERERErFJ4FBEREREREasUHkVERERERMSq/wMEl1ceaTatWAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 1008x720 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "from sklearn.manifold import TSNE\n",
    "import seaborn as sns\n",
    "\n",
    "%matplotlib inline\n",
    "\n",
    "sns.set(font_scale=3)\n",
    "confusion_matrix = sklearn.metrics.confusion_matrix(y, y_pred)\n",
    "\n",
    "plt.figure(figsize=(14, 10))\n",
    "sns.heatmap(confusion_matrix, annot=True, fmt=\"d\", annot_kws={\"size\": 20});\n",
    "plt.title(\"Confusion matrix\", fontsize=30)\n",
    "plt.ylabel('True label', fontsize=25)\n",
    "plt.xlabel('Clustering label', fontsize=25)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [],
   "source": [
    "def vis_data(x_train_encoded, y_train, vis_dim, n_predict, n_train, build_anim):\n",
    "    cmap = plt.get_cmap('rainbow', 10)\n",
    "\n",
    "    # 3-dim vis: show one view, then compile animated .gif of many angled views\n",
    "    if vis_dim == 3:\n",
    "        # Simple static figure\n",
    "        fig = plt.figure()\n",
    "        ax = plt.axes(projection='3d')\n",
    "        p = ax.scatter3D(x_train_encoded[:,0], x_train_encoded[:,1], x_train_encoded[:,2], \n",
    "                c=y_train[:n_predict], cmap=cmap, edgecolor='black')\n",
    "        fig.colorbar(p, drawedges=True)\n",
    "        plt.show()\n",
    "\n",
    "        # Build animation from many static figures\n",
    "        if build_anim:\n",
    "            angles = np.linspace(180, 360, 20)\n",
    "            i = 0\n",
    "            for angle in angles:\n",
    "                fig = plt.figure()\n",
    "                ax = plt.axes(projection='3d')\n",
    "                ax.view_init(10, angle)\n",
    "                p = ax.scatter3D(x_train_encoded[:,0], x_train_encoded[:,1], x_train_encoded[:,2], \n",
    "                        c=y_train[:n_predict], cmap=cmap, edgecolor='black')\n",
    "                fig.colorbar(p, drawedges=True)\n",
    "                outfile = 'anim/3dplot_step_' + chr(i + 97) + '.png'\n",
    "                plt.savefig(outfile, dpi=96)\n",
    "                i += 1\n",
    "            call(['convert', '-delay', '50', 'anim/3dplot*', 'anim/3dplot_anim_' + str(n_train) + '.gif'])\n",
    "\n",
    "    # 2-dim vis: plot and colorbar.\n",
    "    elif vis_dim == 2:\n",
    "        plt.scatter(x_train_encoded[:,0], x_train_encoded[:,1], \n",
    "                c=y_train[:n_predict], edgecolor='black', cmap=cmap)\n",
    "        plt.colorbar(drawedges=True)\n",
    "        plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Encode a number of MNIST digits, then perform t-SNE dim-reduction.\n",
    "x_train_predict = encoder.predict(X_train)\n",
    "\n",
    "#print \"Performing t-SNE dimensionality reduction...\"\n",
    "x_train_encoded = TSNE(n_components=2).fit_transform(x_train_predict)\n",
    "#np.save('%sx_%sdim_tnse_%s.npy' % (266, 2, 266), x_train_encoded)\n",
    "#x_train_encoded = np.load(str(n_predict) + 'x_' + str(vis_dim) + 'dim_tnse_' + str(n_train) + '.npy')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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2EZ5+iszS6MS9hRSQ30FUFpZ6+8YYZMbLqQgH6ksM6csYf2GtJujuHUc7ECPNh+/xHQj9dPb7r43xrE+ap4oG4ncb0czvadawrfSzWtVFIrz3+pmoGGqtfexS1xrib8KzsBPuETMtcrUyypXrbu97eByCeU+TA43o/NzLpn8Z2WV5e4//m4t73nLowJhZLgQIRHA4ShkVWhlLVmzbCDnG3lXCpFNTIgYB6FBhedlnCs4HJvizyut06zSNdLivlbUViAPLI/Ue6sx2GPWtZeURSZ7wsdGWuZHWXValr4by0VznxaID783wZr6i5cEfer85JZkH7236WnquCkS2CwRVyxp721UuubWgsTU3wTnZ2/MsoHudveRW9Rqco0wE6qmRaVcoSgZi0k1Zv7Hhuf9v2w1geEf22ow+hXtXzFc7+WXRzly6GEigbFWJoBQUiAYzEdDPGafPx9ow9038vGD73jv7k/sn3pKTzs0n+d916p1qTop44Q01ddo2aZa/dJyp0ezmucaRSJ32lSVT6ViMXNW+grNFIrgs6wqWHmLkArMo61NHetjMNpv7e8x567k7S+k1PdTI6FWa90tNNEwBUfJuaCqXMOO6zv6uTPB23eP9ewJD/pQrplkQagXHIQjfGOMs8z2is/kmyO35foEtUJKrqp0/BShzrAMk1tW2ePsvayxdkefPfCOL97+WjGVsJ79bWSYpX7wlvPVaus4XxnlZDONs52LVWhpvNvM9qmMxda1u0Vecq6U9virpInKnGKppHLwjec9U32I1h1bad2ljemfTNMnV7C4UGyWIrpQufslNGG9ndaXrc9ZNHORrht2k0+kpF/+wrcCIA8tPUdaiP4exL1iHikRNq4QUlnLWXBdlOowQrT0qVAHHFr67Deln38S0poNYiq08b7FUkJNaErpmP21dbqFpnnDc/a1C7rIeFhBSnCg8kLUVS84NTk18tLK1djIMDu63IvxY3xX/bytj9renn/aR7EYGXPFs368/x19Ullxoe50vwBuDQI4tRLTXq1+sl6S8Rk2iMe06NjaEbcdpUv/biaOnuDJcx6Rbcr+SwBpNRj9Y1vNpvsvt91339O80j+iLTbd0KwfZthS8PifBOXaF9cze/Ise523rzZd9vX27R/oYftVzrOegzzgUmWC2vZjQrpsjyUpfey+yoC9mJgBjvCmSWJRxvc0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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Visualize result.\n",
    "train_new = False\n",
    "n_train = len(X_train)\n",
    "predict_new = False\n",
    "n_predict = len(X_train)\n",
    "vis_dim = 2\n",
    "build_anim = False\n",
    "    \n",
    "vis_data(x_train_encoded, y, vis_dim, n_predict, n_train, build_anim)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
